The present invention relates generally to systems in which a computer carries on a spoken language dialog with a user. More particularly, the present invention relates to a task oriented dialog model, a development tool for creating an output file based on the task oriented dialog model and a Dialog Manager for carrying out the dialog in accordance with the output file from the development tool.
Systems in which a computer carries on a spoken language dialog with a user for gathering information from and conveying information to a user have been known. For example, interactive voice response (IVR) systems have been implemented in telephony systems for conveying and receiving information. However, current approaches to spoken language dialog design, such as the Unisys Dialog Design Assistant, VoxML, HTML, general programming language, and other IVR development tools, require that the developer manually construct a highly detailed sequence of dialog states that define the call flow (or dialog flow) of the application. The developer must specify both how to manage the dialog and the content of the dialog. In other words, for every possible dialog state, a developer must anticipate any possible dialog states to which a dialog may proceed and also specify the content for every dialog state. This is a time consuming and error-prone process especially for dialogs with more than a trivial level of complexity. Furthermore, it is very difficult to maintain consistency of xe2x80x9csound and feelxe2x80x9d throughout the dialog when so much of the process is manual.
Also, the speech recognition industry is a relatively fast paced industry in which products can be outmoded by newer technologies. Individually coding particular grammar sets and implementing them in specific systems does not lend itself to flexible use of current evolving technologies. Thus, it would be advantageous to generalize the specification of the grammar and dialog description. It would be further advantageous to separate the specification of the grammar and the dialog from the speech components that ultimately make sounds and reduce sounds to words and language a computer can interpret.
Consequently, it would be advantageous to provide a way to simplify the process of developing call or dialog flows for use in a spoken dialog system. It would be further advantageous to develop a task oriented dialog model whereby a top-level task can be structured according to tasks and subtasks, each having properties relating to the structure.
However, without a tool to ease the specification of the task model, it would be difficult to make use of such a task-oriented dialog model and manager. It is simply very hard to hand-code a task model in Java (or any other programming language), except for the most trivial applications.
Previously, dialog specification tools have been provided to facilitate thin of natural language dialogues. For example, U.S. Pat. No. 6,321,198, entitled xe2x80x9cApparatus for Design and Simulation of Dialoguexe2x80x9d, relates to a tool for use by designers of natural language dialogues. In one aspect, the tool to which that application relates provides a system which permits construction of a call flow application and enables a designer to verify the call flow cycle by simulation of the application before finalizing the application and writing code. This tool permits more flexible callflow specification, but does not permit specification in accordance with a task oriented dialog model.
It would thus be advantageous to provide a dialog development tool that would facilitate the structural specification of a task in accordance with a task oriented dialog model. It would be further advantageous to create a development tool which would allow a developer to define a task to be performed and the substructure of the task according to a task model, such that a spoken dialog system can be implemented with output from the development tool via a Dialog Manager, without specifying a specific call flow.
It would be still further advantageous to provide a method for managing a dialog automatically in accordance with output from the development tool such that the developer need only specify the structure of a task to be performed in accordance with the task oriented dialog model.
The present invention provides a way to simplify the process of developing call or dialog flows for use in a spoken dialog system. The three principal aspects of a presently preferred implementation of the invention include a task-oriented dialog model (or task model), development tool and a Dialog Manager. The task model is a framework for describing the application-specific information needed to perform the task. The development tool is an object that interprets a user specified task model and outputs information for a spoken dialog system to perform a top level task according to the specified task model. The Dialog Manager is a runtime system that uses output from the development tool in carrying out interactive dialogs to perform the task specified according to the task model. The Dialog Manager conducts the dialog using the task model and its built-in knowledge of dialog management. Thus, generic knowledge of how to conduct a dialog is separated from the specific information to be collected in a particular application. It is only necessary for the developer to provide the specific information about the structure of a task, leaving the specifics of dialog management to the Dialog Manager.
Other aspects of the present invention are described below.